package beans;

// Generated 09/06/2011 23:19:23 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * TbMaquina generated by hbm2java
 */
@Entity
@Table(name = "TB_MAQUINA")
public class TbMaquina implements java.io.Serializable {

	private int maquinaCod;
	private TbSetor tbSetor;
	private TbUsuario tbUsuario;
	private String maquinaDescr;
	private long maquinaCapacidademax;
	private Set<TbProduto> tbProdutos = new HashSet<TbProduto>(0);
	private Set<TbParadamaquina> tbParadamaquinas = new HashSet<TbParadamaquina>(
			0);
	private Set<TbBoleto> tbBoletos = new HashSet<TbBoleto>(0);

	public TbMaquina() {
	}

	public TbMaquina(int maquinaCod, String maquinaDescr,
			long maquinaCapacidademax) {
		this.maquinaCod = maquinaCod;
		this.maquinaDescr = maquinaDescr;
		this.maquinaCapacidademax = maquinaCapacidademax;
	}

	public TbMaquina(int maquinaCod, TbSetor tbSetor, TbUsuario tbUsuario,
			String maquinaDescr, long maquinaCapacidademax,
			Set<TbProduto> tbProdutos, Set<TbParadamaquina> tbParadamaquinas,
			Set<TbBoleto> tbBoletos) {
		this.maquinaCod = maquinaCod;
		this.tbSetor = tbSetor;
		this.tbUsuario = tbUsuario;
		this.maquinaDescr = maquinaDescr;
		this.maquinaCapacidademax = maquinaCapacidademax;
		this.tbProdutos = tbProdutos;
		this.tbParadamaquinas = tbParadamaquinas;
		this.tbBoletos = tbBoletos;
	}

	@Id
	@Column(name = "MAQUINA_COD", unique = true, nullable = false, precision = 4, scale = 0)
	public int getMaquinaCod() {
		return this.maquinaCod;
	}

	public void setMaquinaCod(int maquinaCod) {
		this.maquinaCod = maquinaCod;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "MAQUINA_CODSETOR")
	public TbSetor getTbSetor() {
		return this.tbSetor;
	}

	public void setTbSetor(TbSetor tbSetor) {
		this.tbSetor = tbSetor;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "MAQUINA_CODUSUARIO")
	public TbUsuario getTbUsuario() {
		return this.tbUsuario;
	}

	public void setTbUsuario(TbUsuario tbUsuario) {
		this.tbUsuario = tbUsuario;
	}

	@Column(name = "MAQUINA_DESCR", nullable = false, length = 30)
	public String getMaquinaDescr() {
		return this.maquinaDescr;
	}

	public void setMaquinaDescr(String maquinaDescr) {
		this.maquinaDescr = maquinaDescr;
	}

	@Column(name = "MAQUINA_CAPACIDADEMAX", nullable = false, precision = 10, scale = 0)
	public long getMaquinaCapacidademax() {
		return this.maquinaCapacidademax;
	}

	public void setMaquinaCapacidademax(long maquinaCapacidademax) {
		this.maquinaCapacidademax = maquinaCapacidademax;
	}

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "TB_PRODMAQ", joinColumns = { @JoinColumn(name = "PRODMAQ_CODMAQUINA", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "PRODMAQ_CODPROD", nullable = false, updatable = false) })
	public Set<TbProduto> getTbProdutos() {
		return this.tbProdutos;
	}

	public void setTbProdutos(Set<TbProduto> tbProdutos) {
		this.tbProdutos = tbProdutos;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbMaquina")
	public Set<TbParadamaquina> getTbParadamaquinas() {
		return this.tbParadamaquinas;
	}

	public void setTbParadamaquinas(Set<TbParadamaquina> tbParadamaquinas) {
		this.tbParadamaquinas = tbParadamaquinas;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbMaquina")
	public Set<TbBoleto> getTbBoletos() {
		return this.tbBoletos;
	}

	public void setTbBoletos(Set<TbBoleto> tbBoletos) {
		this.tbBoletos = tbBoletos;
	}

}
